Remote management of virtual machines hosted in a private network

ABSTRACT

Management of virtual machines within a private network may be provided from a server application, such as a web application, on a machine remote from a private network. The server application receives management commands and communications the management commands in a vendor independent format to a client application within the private network. The client application receives the management commands, instantiates the management commands into a vendor specific definition and redirects the management commands to the virtual machine host for appropriate execution.

FIELD OF THE INVENTION

This invention relates to virtual machines existing on a private networkand to the remote management of the network via a virtual network host.

BACKGROUND OF THE INVENTION

Virtual machines are configured on virtual machine hosts, of whichMicrosoft Virtual Server, VMWare Server, VMWare ESX Server, arecommercially available examples. Typically, the virtual machine host isprotected within a private network by a firewall which prevents externalcommunications from remote machines outside of the network. It istherefore difficult to remotely manage the private network from outsideof the network.

What is required is a system, method and computer readable medium forremotely managing virtual machines within a private network.

SUMMARY OF THE INVENTION

In one aspect of the disclosure, there is provided a method for managingone or more virtual machines in a private network. The method comprisesgenerating at least one virtual machine management command in a serverapplication, communicating the at least one virtual machine managementcommand from the server application to a client application within theprivate network, redirecting the at least one virtual machine managementcommand from the client application to a virtual machine host of theprivate network, and executing the at least one virtual machinemanagement command in the virtual machine host.

In one aspect of the disclosure, there is provided a system comprising avirtual machine host that resides within a private network, a clientapplication that resides on a machine within the private network, aserver application that resides on a machine remote from the privatenetwork, a communication channel from the server application to theclient application for providing one or more management commands fromthe server application to the client application, and a redirectionchannel for redirecting the one or more management commands from theclient application to the virtual network host.

In one aspect of the disclosure, there is provided a computer-readablemedium comprising computer-executable instructions for execution by aprocessor, that, when executed, cause a processor to provide aninterface on a remote machine to receive one or more virtual machinemanagement commands in a host independent format, receive one or morevirtual machine management commands through the interface, andcommunicate the one or more virtual machine management commands in ahost independent format to a client application within a network.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example only, to specificembodiments and to the accompanying drawings in which:

FIG. 1 illustrates a system for remotely managing virtual machines of aprivate network;

FIG. 2 illustrates a method for remotely managing virtual machines of aprivate network;

FIG. 3 illustrates a processor and memory of a remote machine thatexecutes a server application;

FIG. 4 illustrates an instruction set that may be executed on theprocessor and memory of FIG. 3; and

FIG. 5 illustrates the processor and memory of FIG. 3 in associationwith a processor and memory of a network machine that executes a clientapplication.

DETAILED DESCRIPTION OF THE INVENTION

In FIG. 1, there is shown a system 10 in accordance with an embodimentof the disclosure. In the system 10, a private network 13 includes avirtual machine host 16 such as a vendor specific virtual machineserver, of which Microsoft Virtual Server, VMWare Server, VMWare ESXServer, are commercially available examples. The private network 13 mayinclude any number of additional physical machines (not shown) thatexecute any number of applications. The private network 13 may interactwith a public wide area network 15 such as the internet. Protection ofthe private network may be provided by a firewall 17 as is known.

A server application 12 is provided on a machine remote or external tothe private network 13. The server application may be provided as a webapplication with a suitable interface allowing the user 11 to enternetwork management commands and parameters. A web application may beprovided from a web server (not shown) within the virtual network 13.The term remote as used herein describes that the server application isnot typically configured on a machine within the machines of the privatenetwork 13. A machine on which the server application executes toreceive management commands may be remote to the network by not beingconfigured as a machine of the private network, irrespective of anygeographic location of the remote machine.

Management commands may include reconfiguring virtual machine settings,e.g. drives, memory, hard disk space allocations, etc. Managementcommands may also include reading changed machine settings, updatingpower states (e.g. stopping, starting, suspending), etc. The serverapplication 12 may be configured to receive management commands from theuser 11 in a format independent of any virtual machine host vendor. Inone embodiment, the management commands may be entered via a web basedform, though a person skilled in the art will readily recognize otherways in which these parameters may be entered.

As described above, the virtual machine host 16 is typically providedwith a firewall 17 which prevents direct communication with the virtualmachine host 16 from outside of the network 13. In accordance with anembodiment of the disclosure, the virtual network 13 includes a clientapplication 14 which provides a communication channel 19 between theserver application 12 via the outside network 15 on one end and betweenthe virtual machine host 16 on the other end.

A method for managing one or more virtual machines in the privatenetwork 13 is illustrated in the flowchart 100 of FIG. 2. At step 101, auser provides one or more virtual machine management commands. Themanagement commands are received by the server application andcommunicated to the client application 14 through the network 15 (step102). The client application 14 redirects the management commands to thevirtual machine host 16 (step 103) which then executes the managementcommands accordingly (step 104).

The client application may reside on any machine within the virtualnetwork 13 including the virtual machine host 16 itself. However, theclient application 14 is configured with a communication channel thatallows it to communicate with outside machines through any networkfirewalls 17.

The virtual machine management commands are specified independent of thevirtual machine vendor. Therefore, the user need not be aware of thevirtual machine platform vendor. The management commands arecommunicated in a vendor independent format over the network and areonly transformed into a vendor specific definition at the point ofdirect interaction with the virtual machine host 16. The virtual machinemanagement operations (start, stop, pause, etc.) are agnostic withrespect to the virtual machine host platform. When initiating thesemanagement operations from the remote server, the end-user need not knowor care that a particular virtual machine is hosted by VMware ESX,Microsoft Virtual Server, etc. It is only once the management operationsare executed on the host system by the client, that the genericoperations are translated (by the client) into vendor specificoperations.

The server application 12 downloads the client side management utilitieswhich support an application command line interface and an eventmessaging interface. Utilities are downloaded to their correspondinghosts. The server application 12 will supports different virtualizationplatforms by providing their corresponding set of management utilities.The command and messaging interface allows the server application 12 touse a single engine to manage any virtualization platforms withoutspecialization requirements.

In one specific example, MS Windows virtualization platforms host alight preconfigured virtual machine to provide a minimum executionenvironment for the downloaded utilities. This eliminates therequirement for special platform support development. For example,VMWare ESX server runs on a derived Linux OS. Having a light virtualmachine running MS Windows in ESX servers can eliminate portingrequirements.

Normalizing the features of the server application 12 to the highestcommon denominator across different virtualization platforms willrequire some utilities to encapsulate extra functionalities than others.For example, MS Virtual Server 2005 does not provide extensive snapshotfeatures that VMWare ESX or MS Hyper-V support. ESX & Hyper-V providehistorical snapshots whereas VS2k5 only provides a single time snapshotwhich means there is only one snapshot that can be restored at anytime.To enhance VS2k5 snapshot functionality, the server's VS2k5 utility willprovide a mechanism to save away the VS2k5 snapshots when the snapshotcommand is executed from the server. The utility will create its ownstorage archive in the host machine to put away each snapshot whilecataloging snapshot properties for later retrievals. In another example,VMWare platforms do not provide virtual machine desktop thumbnails ontheir virtualization management platforms. MS tools not only show thevms′ desktop thumbnails, but also provide APIs to retrieve them. Theserver web management interface will provide desktop thumbnails for allvirtualization platforms.

In a network having multiple virtual machine hosts 16, the virtualmachine management commands may include a specification of which virtualmachine host a virtual machine is resident on.

The components of the systems 10 may be embodied in hardware, software,firmware or a combination of hardware, software and/or firmware. In ahardware embodiment, the server application 12 may be executed on adevice, such as a computer, etc including a processor 61 operativelyassociated with a memory 62 as shown in FIG. 3. The memory 62 may storeinstructions that are executable on the processor 61. An instruction set200 that may be executed on the processor 61 is depicted in theflowchart of FIG. 3. Specifically, when executed, the instruction set200 allows the processor to provide the server application through aninterface (step 201), which allows the user to enter virtual machinemanagement commands. The management commands are recorded by theprocessor 61 (step 202) and communicated to the client application (step203) in a host independent format.

As shown in FIG. 5, the processor 61 may communicate through a suitablecommunications link 65 with further processors, such as a processor 71of a machine within the network 13 with associated memory 72. Throughthe communications link 65, the processor 61 may provide the virtualmachine management commands. The processor 71 may execute the clientapplication in order to receive the virtual machine management commandsand transform the host independent management commands into a hostspecific definition, thereby allowing the virtual machine host toexecute the management commands for the relevant virtual machine.

Although embodiments of the present invention have been illustrated inthe accompanied drawings and described in the foregoing description, itwill be understood that the invention is not limited to the embodimentsdisclosed, but is capable of numerous rearrangements, modifications, andsubstitutions without departing from the spirit of the invention as setforth and defined by the following claims. For example, the capabilitiesof the invention can be performed fully and/or partially by one or moreof the blocks, modules, processors or memories. Also, these capabilitiesmay be performed in the current manner or in a distributed manner andon, or via, any device able to provide and/or receive information.Further, although depicted in a particular manner, various modules orblocks may be repositioned without departing from the scope of thecurrent invention. Still further, although depicted in a particularmanner, a greater or lesser number of modules and connections can beutilized with the present invention in order to accomplish the presentinvention, to provide additional known features to the presentinvention, and/or to make the present invention more efficient. Also,the information sent between various modules can be sent between themodules via at least one of a data network, the Internet, an InternetProtocol network, a wireless source, and a wired source and viaplurality of protocols.

What is claimed is:
 1. A method for managing one or more virtualmachines in a private network comprising: generating at least onevirtual machine management command in a server application;communicating the at least one virtual machine management command fromthe server application to a client application within the privatenetwork, wherein the client application is configured with acommunication channel permitting communication with machines external tothe private network through a firewall; redirecting the at least onevirtual machine management command from the client application to avirtual machine host of the private network; and executing the at leastone virtual machine management command in the virtual machine host. 2.The method according to claim 1 wherein the client application providesan entry point into the private network.
 3. The method according toclaim 1 comprising executing the client application from the virtualmachine host.
 4. The method according to claim 1 wherein the serverapplication resides in a machine remote from the private network.
 5. Themethod according to claim 4 comprising configuring the clientapplication to provide a communication channel between the serverapplication and the client application.
 6. The method according to claim1 comprising communicating the at least one management command from theserver application to the client application in a vendor independentconfiguration.
 7. The method according to claim 1 wherein the clientapplication instantiates the at least one management command into avendor specific virtual machine host format.
 8. The method according toclaim 1 comprising providing the server application as a webapplication.
 9. A system comprising: a virtual machine host that resideswithin a private network; a client application that resides on a machinewithin the private network; a server application that resides on amachine remote from the private network; a communication channel fromthe server application to the client application for providing one ormore management commands from the server application to the clientapplication, wherein the communication channel permits communicationbetween the client application residing on the machine within theprivate network and other machines external to the private networkthrough a firewall; and a redirection channel for redirecting the one ormore management commands from the client application to the virtualnetwork host.
 10. The system according to claim 9 wherein the clientapplication is executed on a machine within the private network.
 11. Thesystem according to claim 9 wherein the client application is executedon the virtual machine host.
 12. The system according to claim 9 whereinthe communication channel comprises a firewall.
 13. The system accordingto claim 9 wherein the server application is configured to communicatethe one or more management commands to the client application in avendor independent format.
 14. The system according to claim 13 whereinthe client application is configured to instantiate the one or moremanagement commands into a vendor specific definition.
 15. The systemaccording to claim 9 wherein the server application is configured todownload one or more client side management utilities.
 16. The systemaccording to claim 9 wherein the client application supports apre-configured virtual machine that provides a minimum executionenvironment.
 17. A non-transitory computer-readable storage mediumcomprising computer-executable instructions for execution by aprocessor, that, when executed, cause a processor to: provide aninterface on a remote machine to receive one or more virtual machinemanagement commands in a host independent format; receive one or morevirtual machine management commands through the interface; andcommunicate the one or more virtual machine management commands in ahost independent format to a client application within a privatenetwork, wherein the client application is configured with acommunication channel permitting communication with machines external tothe private network through a firewall.
 18. The non-transitory computerreadable storage medium according to claim 17 comprising instructionsthat cause the processor to execute the client application that receivesthe one or more virtual machine management commands and redirects theone or more virtual machine management commands to a virtual machinehost.
 19. The non-transitory computer readable storage medium accordingto claim 18 wherein the client application is configured to: determine avirtual machine host from the one or more virtual machine managementcommands; and convert the one or more virtual machine managementcommands into a host dependent format.
 20. The non-transitory computerreadable storage medium according to claim 18 comprising instructionsthat cause the virtual machine host to execute the one or more virtualmachine management commands.